package lottery

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD


/**
 * @author 小小爱欧
 * @date 2022/8/12 11:18
 */
object LotteryDeam {
  def main(args: Array[String]): Unit = {
    val sparkconf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("anli2")
    val sc = new SparkContext(sparkconf)
    val rdd: RDD[String] = sc.textFile("F:\\sportFile\\python\\jupyter\\test\\kaijiangjieguo - Copy.csv")
    val mapRDD1: RDD[(String, Int)] = rdd.map(
      result => {
        val datas: Array[String] = result.split(",")
        //1号到6号球，剩余红球待会处理
        //        (datas(1), datas(2), datas(3), datas(4), datas(5), datas(6))
        //        ((datas(1), 1), (datas(2), 1), (datas(3), 1), (datas(4), 1), (datas(5), 1), (datas(6), 1))
        //        println(s"第七列：${datas(0)}")
        (datas(1), 1)

      }
    ).reduceByKey(_ + _).sortBy(_._2)

    val mapRDD2: RDD[(String, Int)] = rdd.map(
      result => {
        val datas: Array[String] = result.split(",")
        //1号到6号球，剩余红球待会处理
        //        (datas(1), datas(2), datas(3), datas(4), datas(5), datas(6))
        (datas(2), 1)
      }
    ).reduceByKey(_ + _).sortBy(_._2)
    val mapRDD3: RDD[(String, Int)] = rdd.map(
      result => {
        val datas: Array[String] = result.split(",")
        //1号到6号球，剩余红球待会处理
        //        (datas(1), datas(2), datas(3), datas(4), datas(5), datas(6))
        (datas(3), 1)
      }
    ).reduceByKey(_ + _).sortBy(_._2)

    val mapRDD4: RDD[(String, Int)] = rdd.map(
      result => {
        val datas: Array[String] = result.split(",")
        //1号到6号球，剩余红球待会处理
        //        (datas(1), datas(2), datas(3), datas(4), datas(5), datas(6))
        (datas(4), 1)
      }
    ).reduceByKey(_ + _).sortBy(_._2)


    val mapRDD5: RDD[(String, Int)] = rdd.map(
      result => {
        val datas: Array[String] = result.split(",")
        //1号到6号球，剩余红球待会处理
        //        (datas(1), datas(2), datas(3), datas(4), datas(5), datas(6))
        (datas(5), 1)
      }
    ).reduceByKey(_ + _).sortBy(_._2)

    val mapRDD6: RDD[(String, Int)] = rdd.map(
      result => {
        val datas: Array[String] = result.split(",")
        //1号到6号球，剩余红球待会处理
        //        (datas(1), datas(2), datas(3), datas(4), datas(5), datas(6))
        (datas(6), 1)
      }
    ).reduceByKey(_ + _).sortBy(_._2)
    val list: List[RDD[(String, Int)]] = mapRDD6 :: mapRDD5 :: mapRDD4 :: mapRDD3 :: mapRDD2 :: mapRDD1 :: Nil
    val listRDD: RDD[(String, Int)] = mapRDD6 ++ mapRDD5 ++ mapRDD4 ++ mapRDD3 ++ mapRDD2 ++ mapRDD1
    val groupByRDD: RDD[(String, Iterable[(String, Int)])] = listRDD.groupBy(_._1)
    val ReduceByKeyRDD: RDD[(String, Int)] = listRDD.reduceByKey(_ + _).sortBy(_._2)
    ReduceByKeyRDD.foreach(println)


    //    df.show(2000)
    sc.stop()
  }
}
